/**
 * @author   zhangyp
 * @created  2013-8-20 上午11:30:30
 * @email    zviolet@163.com
 * TODO      根据文件名获取相应的mime type
 */
package com.bible.fire.util;

import java.io.File;

public class MIMETypeUtil {

	 //根据文件获得其对应的mime类型
	 public static String getMIMEType(File file){
		 String type="*/*";
		 String fName = file.getName();
		 //获取后缀名前的分隔符"."在fName中的位置。    
	     int dotIndex = fName.lastIndexOf(".");   
	     if(dotIndex < 0){   
	         return type;   
	     }
	     /* 获取文件的后缀名*/ 
		 String end=fName.substring(dotIndex,fName.length()).toLowerCase();
		 if( end.trim().length() == 0){
			 return type;
		 }
		 //在MIME和文件类型的匹配表中找到对应的MIME类型。 
		 for(int i = 0; i < MIME_MapTable.length; i++){
			 if(end.equals(MIME_MapTable[i][0])){
				 type = MIME_MapTable[i][1];
				 break;
			 }
		 }
		 return type;
	 }
	
	 //建立一个MIME类型与文件后缀名的匹配表 
	 private static String [][]  MIME_MapTable={   
        //{后缀名，MIME类型}    
        {".3gp",    "video/3gpp"},   
        {".apk",    "application/vnd.android.package-archive"},   
        {".asf",    "video/x-ms-asf"},   
        {".avi",    "video/x-msvideo"},   
        {".bin",    "application/octet-stream"},   
        {".bmp",    "image/bmp"},   
        {".c",  "text/plain"},   
        {".class",  "application/octet-stream"},   
        {".conf",   "text/plain"},   
        {".cpp",    "text/plain"},   
        {".doc",    "application/msword"},   
        {".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},   
        {".xls",    "application/vnd.ms-excel"},    
        {".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},   
        {".exe",    "application/octet-stream"},   
        {".gif",    "image/gif"},   
        {".gtar",   "application/x-gtar"},   
        {".gz", "application/x-gzip"},   
        {".h",  "text/plain"},   
        {".htm",    "text/html"},   
        {".html",   "text/html"},   
        {".jar",    "application/java-archive"},   
        {".java",   "text/plain"},   
        {".jpeg",   "image/jpeg"},   
        {".jpg",    "image/jpeg"},   
        {".js", "application/x-javascript"},   
        {".log",    "text/plain"},   
        {".m3u",    "audio/x-mpegurl"},   
        {".m4a",    "audio/mp4a-latm"},   
        {".m4b",    "audio/mp4a-latm"},   
        {".m4p",    "audio/mp4a-latm"},   
        {".m4u",    "video/vnd.mpegurl"},   
        {".m4v",    "video/x-m4v"},    
        {".mov",    "video/quicktime"},   
        {".mp2",    "audio/x-mpeg"},   
        {".mp3",    "audio/x-mpeg"},   
        {".mp4",    "video/mp4"},   
        {".mpc",    "application/vnd.mpohun.certificate"},          
        {".mpe",    "video/mpeg"},     
        {".mpeg",   "video/mpeg"},     
        {".mpg",    "video/mpeg"},     
        {".mpg4",   "video/mp4"},      
        {".mpga",   "audio/mpeg"},   
        {".msg",    "application/vnd.ms-outlook"},   
        {".ogg",    "audio/ogg"},   
        {".pdf",    "application/pdf"},   
        {".png",    "image/png"},   
        {".pps",    "application/vnd.ms-powerpoint"},   
        {".ppt",    "application/vnd.ms-powerpoint"},   
        {".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation"},   
        {".prop",   "text/plain"},   
        {".rc", "text/plain"},   
        {".rmvb",   "audio/x-pn-realaudio"},   
        {".rtf",    "application/rtf"},   
        {".sh", "text/plain"},   
        {".tar",    "application/x-tar"},      
        {".tgz",    "application/x-compressed"},    
        {".txt",    "text/plain"},   
        {".wav",    "audio/x-wav"},   
        {".wma",    "audio/x-ms-wma"},   
        {".wmv",    "audio/x-ms-wmv"},   
        {".wps",    "application/vnd.ms-works"},   
        {".xml",    "text/plain"},   
        {".z",  "application/x-compress"},   
        {".zip",    "application/x-zip-compressed"},   
        {"",        "*/*"}     
    };   

}
